Material preluat de pe site-ul infoscience.3x.ro/c++/aplicatii_recursivitate.HTM



Lisa probleme recursivitate

1. Sa se scrie o functie recursiva care afiseaza valorile de la 1 la n
2. Sa se scrie o functie recursiva care afiseaza valorile de la n la 1
3. Sa se scrie o functie recursiva care calculeaza n!
4. Sa se scrie o functie recursiva care calculeaza suma primelor n numere naturale
5. Sa se scrie o functie recursiva care calculeaza produsul a*b (ca fiind o adunare repetata)
6.
Sa se scrie o functie recursiva care calculeaza a: b (ca fiind o scadere repetata )
7. Sa se descompuna un numar in suma de doua numere:
Ex 11 se descompune in: 1+10, 2+9, 3+8, 4+7, 5+6


8. Expresii:
1*2+2*3+3*4+4*5
1+3+5+7+…
1*4*7*10*…
2*4*6*8*….
1x2+2x3+3x4+....+nx(n+1)
½+2/3+3/4+......+n/(n+1)
(1+2)x(2+3)x(3+4).....x(n+n+1)

9. Şirul lui Fibonacci. Se consideră şirul definit astfel: 0,1,1,2,3,5,8,13 u(7)=13

10. Se dau două numere naturale a şi b. Se cere să se calculeze cel mai mare divizor comun al lor.

11. Să se scrie o funcţie recursivă care afiseaza cifrele unui numar incepand de la unitati

N=1234

12. Să se scrie o funcţie recursivă pentru calculul sumei cifrelor unui număr natural.
13 . Să se scrie o funcţie recursivă pentru transformarea unui număr natural n, din baza 10 în baza k (1<k<10).
14. Sa determine cifra cea mai mare a unui numar
15. sa se determine suma cifrelor pare ale unui numar
16. sa se numere cifrele unui numar
17. sa se numere cifrele pare ale unui numar
18. sa se numere de cate ori se gaseste cifra x intr-un numar
19. sa se afiseze divizorii unui numar
20. sa se determine suma divizorilor unui numar
21. Sa se determine daca un numar este prim
22.
inversul unui numar
23. Sa se genereze primii n termeni ai unei progresii aritmetice (geometrice), daca se cunosc primul termen si ratia.
24. un subprogram recursiv care determina de cate ori se gaseste o cifra intr-un numar
25. Scrieti un subprogram recursiv pentru determinarea si afisarea valorilor din triunghiul lui Pascal pana la nivelul k. Amintim ca triunghiul lui Pascal este format din coeficientii binomului lui Newton (a+b)n, pentru n=1,2…k
Exemplu: pentru k=5, triunghiul este:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

39. sa se afiseze o piramida de tipul:
1
2 2
3 3 3
4 4 4 4 etc

26. Pentru n dat, sa se construiasca recursiv triunghiul de numere de mai jos, fara a folosi nici o instructiune repetitiva.

1
1 2
………………..
1 2 3 ……….. n-1
1 2 3 ……….. n-1 n


27. Pentru n dat, sa se construiasca recursiv triunghiul de numere de mai jos, fara a folosi nici o instructiune repetitiva.
1 2 3 ……….. n-1 n
1 2 3 ……….. n-1
………………..
1 2
1
1. Pentru n dat, sa se construiasca recursiv triunghiul de numere de mai jos, fara a folosi nici o instructiune repetitiva.
n n-1 n-2 …………..3 2 1
n n-1 n-2 …………..3 2
………………..
n n-1
n

28 . un subprogram recursiv care determina daca o valoare se gaseste intr-un vector
29. citirea, afisarea unui vector recursiv
30. suma elementelor unui vector
31.
suma elementelor pare dintr-un vector
32. Sa se calculeze, recursiv, maximul elementelor dintr-un vector
33.
Scrietio functie recursiva care afiseaza elementele unui vector in ordine inversa.
34. Se da un vector x cu n componente numere naturale cu cel mult 9 cifre. Sa se afiseze suma cifrelor componentelor vectorului.
35.
suma elementelor de pe o coloana a unei matrici
36.
afisareaelementelor de pe diagonalele principala si sec dintr-o matrice patratica
37. *un cioban isi cumpara oi. stiind ca o oaie dupa un an face o mieluta si mieluta devine dupa un an mioara iar mioara devine dupa un an oaie, ce va contine turma ciobanului dupa n ani?

Obs. Nu se nasc berbecuti si nici nu mor animale
dupa un an:
1 oaie si o mileluta nici o mioara
dupa doi ani:
o oaie, o mieluta si o mioara
dupa 3 ani:
2 oi,1 mioara , mielut 1
dupa 4 ani
3 oi, 1 mioara, 2 mieluti

38. O persoana are de coborat n trepte. La fiecare pas, el poate cobori 1 sau 2 trepte. Cate posibilitati are de a cobori scara?
Exemplu: pentru n=12, exista 233 de posibilitati.
39. Sa se descompuna un numar in factori primi, folosind un algoritm recursiv. (Ex: 19344=23*3*13*31)
40. Numarul de partitii ale unei multimi cu n elemente in k submultimi este S(n,k), numit numarul lui Stirling de speta a II-a si este definit de relatiile:
S(n,1)=S(n,n)=1
S(n+1,k)=S(n,k-1)+kS(n,k)
Sa se calculeze numarul partitiilor unei multimi cu n elemente in submultimi de k elemente. Exemplu: S(5,3)=25

41. Se da un vector cu n elemente intregi. Sa se verifice, folosind o functie recursiva, daca exista macar un element pozitiv in vector.
42. Fie sirul 1,2,2,3,3,3,… Gasiti o definitie recursiva a acestui sir si scrieti un program care o implementeaza.

43. Se considera ca diagonalele unei matrice patratice o impart pe aceasta in 4 zone: nord, sud, est si vest. Scrieti cate o functie recursiva pentru a calcula:
a. Suma elementelor din nord
b. Produsul elementelor din vest
c. Numarul de elemente pare din sud
d. Procentul de zerouri din est
44. Scrieti un program care descompune un numar dat n ca suma de puteri distincte ale lui 2.
Indicatie: Se va folosi o functie care determina cea mai mare valoare p cu proprietatea ca 2p<=n
Exemplu: n=4978 se obtine descompunerea 21+24+25+26+28+29+212
45. Sa se completeze in spirala, folosind un algoritm recursiv, o matrice cu n linii si n coloane, cu primele n2 numere intregi.
Exemplu: pentru n=4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
46. Din numarul 4 se poate obtine orice numar natural N scris in baza 10 prin aplicarea urmatoarelor operatii:
a. Se scrie la sfarsit cifra 4
b. Se adauga la sfarsit cifra 0
c. Daca numarul este par, se imparte la 2
Sa se scrie un program care produce un sir de numere construit conform regulilor precedente, sir in care primul numar este 4 iar ultimul este N.
Exemplu: pentru N=7024, secventa este: 4
à 2 à 1 à 14 à 140 à 1404 à 702 à7024.
Indicatie: Sirul se va genera invers, de la N la 4, aplicand transformarile inverse.
47. Fie sirul 1,2,3,4,5,10,20,40,80,… ai carui termeni, incepand cu al saselea, satisfac relatia a[i]=a[i-1]*2. Sa se scrie un algoritm recursiv care descompune un numar pozitiv n ca suma de termeni distincti din sirul definit.

Exemplu: pentru n=4578 se obtine descompunerea 3+5+10+80+640+1280+2560
48. Codul Fibonacci de ordinul n, n>=2, este secventa cn. Daca
l este sirul nul, atunci codul Fobonacci se poate obtine recursiv astfel:
c2=(
l), c3=(0,1), c4=(00,01,10)
iar cn, n>4 se obtine prin concatenarea a doua subsecvente: prima secventa se obtine prefixand cu 0 fiecare codificare din cn-1, a doua prefixand cu 10 fiecare codificare din cn-2.
Elaboratiun algoritm care construieste codul lui Fibonacci pentru orice n dat.
Exemplu: c5=(000,001,010,100,101)
49. Sa se verifice daca doua matrici sunt identice, folosind o functie recursiva.
50. Afisati tabla inmultirii cu x, folosind o functie recursiva.






http://www.advancedelearning.com./index.php/articles/214